package demo02;

/*
 *  Lambda防止日志案例性能浪费
 */
public class Demo02LambdaLogger {
    public static void main(String[] args) {
        String stringA = "Hello\t";
        String stringB = "World\t";
        String stringC = "Java";

        log(1, () -> {
            System.out.println("Lambda执行");
            return stringA + stringB + stringC;
        });
    }

    public static void log(int level, MessageBuilder messageBuilder) {
        if (level == 1) {
            /*
             *  由于Lambda延迟执行的特性，如果level为1，messageBuilder的方法正常执行，Lambda执行，"Lambda执行"会正常输出
             *  如果level不为1，messageBuilder的方法不会执行，Lambda也不会执行，"Lambda执行"不会输出
             */
            System.out.println(messageBuilder.buildeMessage());
        }
    }
}
